//----------------------------------Include-------------------------------------
#include "mcu.h"
//------------------------------------------------------------------------------

//3 个看门狗定时器，其中 2 个位于系统电源域称为 WDG0~1 。
//WDG0~1 的时钟为 CLK_TOP_AHB，计数器外部时钟来自 CLK_32K。
//1 个位于电源管理域，称为 PWDG ， PWDG 可以在系统电源域掉电时保持工作。
//PWDG 的时钟为 CLK_24M ，计数器外部时钟为 CLK_32K。
//PWDG 支持从电源管理域 IO 上输出复位信号。

//最大时间超时时间 2^14 /32768 = 16384 /32768 = 0.5s

//--------------------------------Public Func-----------------------------------
void mcu_init_wdg0(void)
{
  wdg_control_t     cfg;

  cfg.reset_interval     = wdg_convert_reset_interval_from_us(WDG_EXT_CLK_FREQ,     400000ul);
  cfg.interrupt_interval = wdg_convert_interrupt_interval_from_us(WDG_EXT_CLK_FREQ, 400000ul);

  cfg.reset_enable      = true;
  cfg.interrupt_enable  = false;
  cfg.clksrc            = wdg_clksrc_extclk;
  cfg.wdg_enable        = true;
  wdg_init(HPM_WDG0, &cfg);
}

void mcu_wdg0_feed(void)
{
  wdg_restart(HPM_WDG0);
}
//------------------------------------EOF---------------------------------------



